const fs = require('fs');
const path = require('path');
const { convertFileEncoding } = require('./convert_gbk_to_utf8');

/**
 * 递归遍历目录并转换所有文件的编码
 * @param {string} dirPath - 需要遍历的目录路径
 */
function convertDirectoryEncoding(dirPath) {
  const files = fs.readdirSync(dirPath);

  files.forEach(file => {
    const fullPath = path.join(dirPath, file);
    const stat = fs.statSync(fullPath);

    if (stat.isDirectory()) {
      // 如果是目录，则递归处理
      convertDirectoryEncoding(fullPath);
    } else {
      // 只转换常见文本类型的文件
      if (/\.(js|java|txt|html|css|json|xml|md|py|cpp|c|h)$/i.test(file)) {
        convertFileEncoding(fullPath);
      }
    }
  });
}

// 指定要转换的目录（请修改为你的 src 目录路径）
const srcDirectory = path.join(__dirname, 'src');
console.log(`🔄 开始转换 ${srcDirectory} 目录下的所有 GBK 文件到 UTF-8`);
convertDirectoryEncoding(srcDirectory);
console.log('🎉 批量转换完成！');